/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: fzykd
 * Date: 2022-05-08
 * Time: 15:39
 */

class Dog extends Animal{ //  extends继承 对共性的抽取 继承是单继承

    public Dog(String name,int age){
        //System.out.println();
        super(name,age); // super 作用是显示调用 父类 带两个参数的构造方法
        // 证明一点  子类构造的同时 先帮助父类进行构造
        // 且super关键字 只能写在构造方法的第一行
    }
    public void eat(){
        System.out.println(this.age + " 岁的" + this.name+" 狼吞虎咽！");// 字段同名是在方法中用super指定调用父类的字段
    }

    public void call(){
        System.out.println(super.age + " 岁的" + this.name+" 在撕心裂肺的叫！");
    }

}

class Bird extends Animal{
    public void fly(){
        System.out.println(this.age + " 岁的" +this.name+" 在自由飞翔 ");
    }
    public Bird(String name, int age){
        super(name,age);
    }
}

class Animal{
    public String name;
    public int age;

    public void sleep(){
        System.out.println(this.age + " 岁的" +this.name+"正在睡觉奥！");
    }
    public void eat(){
        System.out.println(this.age + " 岁的" + this.name+"正在吃！");
    }

    public Animal(String name,int age){ // 当对父类构造完之后 super不在报错
        this.name = name;
        this.age = age;
    }

}
public class FaceClass {
    public static void main(String[] args) {
        Animal animal = new Dog("haha",80);
        animal.eat();
    }

    public static void main1(String[] args) {
        Dog dog = new Dog("雪碧",12);
        dog.eat();// 父类和子类有同名时 优先使用自己的
    }
}
